Exchange API
Asset Creation
The Exchange API v1 can create these asset types:
REST APIs- An API specification that can be represented in RAML format or OAS (Swagger) format.SOAP APIs- An API specification in WSDL format.HTTP APIs- A placeholder for an endpoint for use by private Exchange users who want to manage the endpoint with API Manager.API Groups- A set of APIs bundled into a single asset.Instead of requesting access to multiple APIs to satisfy a use case, a developer can access the group in one step.
API Spec Fragments- A RAML document that has a version and an identifier, but is not a complete RAML specification.API spec fragments are also known as RAML fragments.
Custom- A description and an optional file to explain aspects of your system, to provide instructional videos, or to describe a product or organizational documentation.
The following sections show examples of uploading each asset type.
Create an Asset
Before executing the examples, follow the instructions in the Anypoint Platform Token section to get a token. In each cURL example, replace ANYPOINT_TOKEN with your token.
You can send HTTP commands with cURL, Postman, or another application. These examples use cURL.
Before executing the examples, be sure you understand all the multipart request fields.
Fields that are common to all asset types:
organizationId: Organization where the asset is created.groupId: Group ID of the asset.assetId: Asset ID of the asset.version: Version of the asset in semantic versioning (SEMVER) format.name: The visible name of the asset.classifier: The classifier is used to identify the type of asset. The examples show the classifiers for publishing each asset type.
Fields that are used for only some assets:
asset: The full path of the asset file that is uploaded.main: The name of the main asset file in the root directory of the uploaded zip file.apiVersion: The API version of the asset. Used only for API asset types.assetLink: The URL of an external API.
IMPORTANT: The property asset must always be the last field sent in the multipart request.
When creating an asset of any type, the maximum file size is 5 MB.
RAML
This example creates an asset of type RAML.
Download the file used in this example here:
Replace /Users/llucas/Downloads/training-american-flights-api-1.0.0-raml.zip with the local path of the downloaded file.
Change these fields:
organizationIdgroupIdassetIdversionnameapiVersion
Change the field main only if another file is uploaded.
curl -v \
-H "Authorization: Bearer ANYPOINT_TOKEN" \
-F organizationId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F groupId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F assetId="raml-asset-flight" \
-F version="1.0.0" \
-F name="raml asset name" \
-F main="american-flights-api.raml" \
-F apiVersion="v1" \
-F classifier="raml" \
-F asset=@/Users/llucas/Downloads/training-american-flights-api-1.0.0-raml.zip \
https://anypoint.mulesoft.com/exchange/api/v1/assetsOAS API (Swagger)
This example creates an asset of type OAS.
Download the file used in this example here:
Replace /Users/llucas/Downloads/verato-1.0.0-oas.zip with the local path of the downloaded file.
Change these fields:
organizationIdgroupIdassetIdversionnameapiVersion
Change the field main only if another file is uploaded.
curl -v \
-H "Authorization: Bearer ANYPOINT_TOKEN" \
-F organizationId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F groupId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F assetId="oas-asset" \
-F version="1.0.0" \
-F name="oas asset name" \
-F main="verato.json" \
-F apiVersion="v1" \
-F classifier="oas" \
-F asset=@/Users/llucas/Downloads/verato-1.0.0-oas.zip \
https://anypoint.mulesoft.com/exchange/api/v1/assetsSOAP API (WSDL)
This example creates an asset of type WSDL.
Change these fields:
organizationIdgroupIdassetIdversionnameassetLinkapiVersion
Change the field main only if another file is uploaded.
curl -v \
-H "Authorization: Bearer ANYPOINT_TOKEN" \
-F organizationId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F groupId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F assetId="wsdl-asset-with-link" \
-F version="1.0.0" \
-F name="wsdl asset name" \
-F assetLink="http://www.my-wsdl-url.com" \
-F apiVersion="v1" \
-F classifier="wsdl" \
https://anypoint.mulesoft.com/exchange/api/v1/assetsThis example creates a SOAP API using asset and not assetLink:
curl -v \
-H "Authorization: Bearer ANYPOINT_TOKEN" \
-F organizationId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F groupId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F assetId="wsdl-asset-with-file" \
-F version="1.0.0" \
-F name="wsdl asset name" \
-F main="main.wsdl" \
-F apiVersion="v1" \
-F classifier="wsdl" \
-F asset=@/Users/llucas/Downloads/wsdl.zip \
https://anypoint.mulesoft.com/exchange/api/v1/assetsHTTP API
This example creates an asset of type HTTP.
Increase the major version for each new version of an HTTP API. For example, increase from 1.0.0 to 2.0.0.
Change these fields:
organizationIdgroupIdassetIdversionnameassetLinkapiVersion
curl -v \
-H "Authorization: Bearer ANYPOINT_TOKEN" \
-F organizationId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F groupId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F assetId="http-asset-3" \
-F version="1.0.0" \
-F name="http asset name" \
-F assetLink="http://www.my-http-api-url.com" \
-F apiVersion="v1" \
-F classifier="http" \
https://anypoint.mulesoft.com/exchange/api/v1/assetsRAML Fragment
This example creates an asset of type RAML Fragment.
Download the file used in this example here:
Replace /Users/llucas/Downloads/training-oauth20-security-scheme-1.0.2-raml-fragment.zip with the local path of the downloaded file.
Change these fields:
organizationIdgroupIdassetIdversionname
Change the field main only if another file is uploaded.
curl -v \
-H "Authorization: Bearer ANYPOINT_TOKEN" \
-F organizationId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F groupId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F assetId="raml-fragment-asset" \
-F version="1.0.0" \
-F name="raml fragment asset name" \
-F main="OAuth2.raml" \
-F classifier="raml-fragment" \
-F asset=@/Users/llucas/Downloads/training-oauth20-security-scheme-1.0.2-raml-fragment.zip \
https://anypoint.mulesoft.com/exchange/api/v1/assetsCustom
This example creates an asset of type Custom.
Download the file used in this example here:
Replace /Users/llucas/Downloads/two-factor-auth-policy-1.0.0-custom.zip with the local path of the downloaded file.
Change these fields:
organizationIdgroupIdassetIdversionname
curl -v \
-H "Authorization: Bearer ANYPOINT_TOKEN" \
-F organizationId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F groupId="fa7b266c-3817-4cbb-ae49-7f3cc6c8cd9e" \
-F assetId="custom-asset" \
-F version="1.0.0" \
-F name="custom asset name" \
-F classifier="custom" \
-F asset=@/Users/llucas/Downloads/two-factor-auth-policy-1.0.0-custom.zip \
https://anypoint.mulesoft.com/exchange/api/v1/assetsNote: the file is not necessary to be uploaded when the asset type is "Custom"
API Group
To know how to create an API Group from API Manager, please visits this link